#!/usr/bin/env node

/**注册列表扩展 */
import "./extends/m-array";
/**流程控制器 */
import MMain from "./m-main";

/**
 * 命令执行函数
 * 命令参数：
 * 1、 name 或 -n=[name] 发布名称(生成项目名称)
 * 2、 dir 或 -d=[dir] 发布目录相对路径(./开始)
 * 3、 writer 或 -w=[writer] 书写器名称(默认为ts+axios)
 * 4、 offline 或 -o=[isOffLine] 是否离线发布(项目中包含swagger.json文件)
 * 5、 user 或 -u=[user] 在线发布时的BasicAuthToken用户名称(离线时不需要)
 * 6、 pass 或 -p=[pass] 在线发布时的BasicAuthToken用户密码(离线时不需要)
 * 7、 addr 或 -a=[addr] 待发布的swagger.json文件地址(在线时为网络地址，离线时为相对路径)
 */
(async function run() {
  try {
    await MMain.getParm();
    await MMain.loadJson();
    await MMain.parseSwg();
    await MMain.writeFiles();
    await MMain.success();
  } catch (err) {
    await MMain.fail(err);
    process.exit(1);
  }
})();
